
package com.jf.cloud.product.service;

import com.jf.cloud.product.bo.NeedZoneSkuInfoBO;

import java.util.Collection;
import java.util.List;

/**
 * 
 *
 * @author zz
 * @date 2022-08-17 09:12:37
 */
public interface SkuStockZoneService {

    /**
     * 进行分片
     *
     * @param skuId skuId
     */
    void doZone(Long skuId);

    /**
     * 重新分片
     *
     * @param skuId skuId
     * @param stock 库存
     * @param spuId 商品id
     */
    void redoZone(Long skuId, int stock, Long spuId);

    /**
     * 取消分片
     * @param skuId
     * @param stock
     * @param spuId
     */
    void undoZone(Long skuId, int stock, Long spuId);

    /**
     * 对sku库存进行分片
     * @param spuIds
     * @param needZoneSkus
     */
    void zoneSkuIfNecessary(List<Long> spuIds, List<NeedZoneSkuInfoBO> needZoneSkus);


    /**
     * 重新分配
     * @param skuIds
     */
    void reZoneByCollection(Collection<Long> skuIds);

    /**
     * 取消分片
     * @param skuIds
     */
    void unZoneByCollection(Collection<Long> skuIds);
}
